package com.ml.message;

import java.math.BigDecimal;
import java.util.Date;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.annotation.JSONField;
import com.alibaba.fastjson.serializer.SerializerFeature;

import lombok.Data;

@Data
public class OrderSuccessVO {
	/**
	 * -自增id -排序用id,不用时间排序.
	 */
	private long id;

	/**
	 * -用户ID
	 */
	private long uid;
	
	/**
	 * -账户id
	 */
	private long accountId;

	/**
	 * -单价
	 */
	private BigDecimal price;

	/**
	 * -数量
	 */
	private BigDecimal num;

	/**
	 * -总额
	 */
	private BigDecimal amount;

	/**
	 * -是否是出价单（买）
	 */
	private boolean ifBid;

	/**
	 * -订单类型 见:EnumOrderType
	 */
	private int orderType;

	/**
	 * -交易队 id
	 */
	@JSONField(serialize = false)
	private int symbolId;

	/**
	 * -交易队
	 */
	private String symbol;

	/**
	 * 交易对报价的精度（小数点后位数）
	 */
	@JSONField(serialize = false)
	private Integer pricePrecision;

	/**
	 * 交易对基础币种计数精度（小数点后位数）
	 */
	@JSONField(serialize = false)
	private Integer numPrecision;

	/**
	 * 交易对交易金额的精度（小数点后位数）
	 */
	@JSONField(serialize = false)
	private Integer amountPrecision;

	/**
	 * -状态 见：EnumOrderState
	 */
	private int state;

	/** 已成交数量 */
	private BigDecimal dealNum;

	/** 未成交交数量(市价买没有未成交数量) */
	private BigDecimal noDealNum;

	/** 已成交总额 */
	private BigDecimal dealAmount;

	/** 未成交总额（市价卖没有未成交总额） */
	private BigDecimal noDealAmount;

	/**
	 * 创建时间
	 */
	private Date createTime;

	/**
	 * 优先级
	 */
	@JSONField(serialize = false)
	private int priority;

	@Override
	public String toString() {
		return JSON.toJSONString(this, SerializerFeature.WriteBigDecimalAsPlain);
	}
}
